package es.jesramgue.pruebafiguras;

import es.jesramgue.pruebafiguras.impl.base.Cuadrado;
import es.jesramgue.pruebafiguras.impl.base.Triangulo;
import es.jesramgue.pruebafiguras.impl.base.cuadrados.Rectangulo;
import es.jesramgue.pruebafiguras.impl.base.cuadrados.Rombo;
import es.jesramgue.pruebafiguras.logica.Figura;
import java.util.ArrayList;

/**
 * Clase Principal. Punto de entrada de la app.
 *
 * @version 1.0
 * @author Jesus Ramirez Guerrero.
 */
public class Principal {

    private static ArrayList<Figura> afLista;

    public static void main(String[] args) {
        InitArray();

        System.out.println("1.- Recuperará todas las figuras de tipo cuadrado y para cada una de ellas hará que\n"
                + "ejecute su método pintar():");
        PrintCuadrados();
        System.out.println("2.- Recuperará todas los triangulos y para cada uno de ellos hará que ejecute su\n"
                + "método pintar():");
        PrintTriangulos();

    }

    /**
     * Inicializa el array de Figuras de ejemplo.
     */
    private static void InitArray() {
        afLista = new ArrayList<Figura>();
        afLista.add(new Triangulo());
        afLista.add(new Rectangulo());
        afLista.add(new Triangulo());
        afLista.add(new Rectangulo());
        afLista.add(new Rombo());
    }

    /**
     * Imprime por pantalla el resultado de la pregunta 1.
     */
    private static void PrintCuadrados() {
        for (Figura lfAux : afLista) {
            if (lfAux instanceof Cuadrado) {
                System.out.println(lfAux.pintar());
            }
        }
    }

    /**
     * Imprime por pantalla el resultado de la pregunta 2.
     */
    private static void PrintTriangulos() {
        for (Figura lfAux : afLista) {
            if (lfAux instanceof Triangulo) {
                System.out.println(lfAux.pintar());
            }
        }
    }
}
